The solution according to one or more embodiments of the present invention relates to the data-processing field. More specifically, this solution relates to the migration of software images.
Migration of software images is a critical activity in large data-processing systems comprising a high number of computers. Generally speaking, a software image is a structure that includes software modules residing on a computer—either of a physical type or emulated by a virtual machine (for example, its operative system, application programs, and/or data).
The process of migrating software images (or simply migration process) may be of a staged type or of a direct type. In a staged migration process, a master software image of a master computer is captured and stored into a central repository; a server computer then controls the deployment of the master software image to any desired target clients. Conversely, in a direct migration process the software image of one or more source clients is directly transferred to the target clients; the direct migration process is faster and simpler (since it can occur directly from the source clients without the need of any central repository, with the possibility of distributing a corresponding workload on multiple source clients).
With reference in particular to the direct migration process, different approaches have been proposed in the art.
Particularly, in a migration process of the cold type the source client is stopped to capture its software image (so as to ensure that the software image reflects a consistent state of the source client). The cold migration process may work between source and target clients that have either homogeneous platforms or heterogeneous platforms; however, the cold migration process is very slow, since both the source client and the target client are unavailable for the whole time required to migrate the full software image (of the order of hours). Instead, in a migration process of the hot type the source client is only paused for the time required to capture a consistent state thereof (while the actual transfer of the software image to the target client occurs transparently to the source client that can work normally). The hot migration process is fast on the source client (since it remains unavailable only for the time required to capture its state, of the order of minutes); however, the hot migration process is only applicable between virtual machines running on homogenous platforms. Likewise, in a migration process of the live type the source client is only paused for the time required to encapsulate the state thereof into a shared file. The live migration process is very fast on the source client (since its unavailability is of the order of seconds); however, the live migration process as well is only applicable between virtual machines running on homogenous platforms. In any case, in both the hot migration process and the live migration process the target client is available only after the full software image has been transferred thereto (i.e., after some hours from the beginning of the migration process).
Moreover, U.S. Pat. No. 7,512,833 (the entire disclosure of which is herein incorporated by reference) discloses a method for cloning an operative system to computers having different hardware configurations. For this purpose, a master image of the operative system is created by capturing the content of a disk of a master computer wherein it has been previously installed; files, drivers and registry settings of the master image are then stripped down to a minimum basic level removing software and hardware incompatibility, so as to make the master image bootable on different computers.
US-A-2008/0301425 (the entire disclosure of which is herein incorporated by reference) discloses a method for supporting a remote boot of a host. For this purpose, a management controller of the host includes a remote access initiator that loads a kernel of an initial operative system image into the host from a remote access target; the kernel then uses its own remote access initiator to load another operative system image from the remote access target. This allows the remote boot of the host even without any LAN on motherboard (LOM) device.
US-A-2006/0031547 (the entire disclosure of which is herein incorporated by reference) discloses a method for integrated on-demand delivery of operative systems and application programs. For this purpose, the operative systems are delivered in streaming to clients from corresponding images on streaming servers—i.e., blocks thereof are downloaded from the network when they are needed (with further blocks that are pre-fetched while the blocks already received are used), with the possible addition of a local cache function; the application programs are likewise delivered in streaming from separate images. The management of the operative systems is computer specific, while the management of the application programs is user specific—so as to avoid the need of building combined operative system and application program images for each user.
US-A-2010/0174894 (the entire disclosure of which is herein incorporated by reference) discloses a method for configuring an operative system of a target computer of the diskless type. For this purpose, a configuration image of a donor computer is copied onto a virtual disk, and it is then modified according to a hardware configuration of the target computer—so as to allow its next booting from the virtual disk.